package leetcode.动态规划;

import org.junit.Test;

/**
 * @author :songyaozhang
 * @date :Created 2021/8/16 15:38
 * @description :https://leetcode-cn.com/problems/min-cost-climbing-stairs/
 */
public class 使用最小花费爬楼梯 {
    @Test
    public void test() {
        Solution solution = new Solution();
        System.out.println(solution.minCostClimbingStairs(new int[]{1, 100, 1, 1, 1, 100, 1, 1, 100, 1}));

    }

    class Solution {
        public int minCostClimbingStairs(int[] cost) {
            int[] dp = new int[cost.length + 1];
            dp[0] = 0;
            dp[1] = 0;
            for (int i = 2; i <= cost.length; i++) {
                dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
            }
            return dp[cost.length];
        }
    }
}
